package IO流.IO流操作.处理流.转换流;

import java.net.URL;

import java.io.*;

/**
 * 转换流   InputStreamReader  OutputStream
 * 1.以字符流的形式操作字节流（纯文本）
 * 2.指定字符集（UTF-8、GBK....）
 */
public class ConvertTest02 {
    public static void main(String[] args) {
        //此方法为其加上缓冲流
        try (BufferedReader is =
                     new BufferedReader(
                             new InputStreamReader(
                                     new URL("https://www.taobao.com/").openStream(), "UTF-8"));
             BufferedWriter bw =
                     new BufferedWriter(
                             new OutputStreamWriter(
                                     new FileOutputStream("aa.html"), "UTF-8"))) {
            //打开一个网络流（属于节点流）

            //操作
           String line;
            while ((line = is.readLine()) != null) {
                bw.write(line);
                bw.newLine();
            }
            bw.flush();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    //此方法为源代码指定了字符集。
    public static void test2() {
        //操作网络流， 下载百度源代码
        try (InputStreamReader is =
                     new InputStreamReader(new URL("http://www.baidu.com").openStream(), "UTF-8")) {
            //打开一个网络流（属于节点流）

            //操作
            int temp;
            while ((temp = is.read()) != -1) {
                System.out.print((char) temp);
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    //此方法读取源代码会出现中文乱码。
    public static void test() {
        //操作网络流， 下载百度源代码
        try {
            //打开一个网络流（属于节点流）
            InputStream is = new URL("http://www.baidu.com").openStream();
            //操作
            int temp;
            while ((temp = is.read()) != -1) {
                System.out.println((char) temp);
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
